package com.hello.system.service;

import com.hello.system.domain.dto.WxLoginRequest;
import com.hello.system.domain.dto.WxLoginResponse;
import com.hello.system.domain.dto.WxRegisterRequest;

import java.util.Map;

/**
 * 微信用户服务接口
 * 
 * @author hello
 */
public interface IWxUserService {
    
    /**
     * 微信小程序登录
     * 
     * @param loginRequest 登录请求参数
     * @return 登录结果
     */
    WxLoginResponse wxLogin(WxLoginRequest loginRequest);
    
    /**
     * 获取微信用户信息
     * 
     * @param loginRequest 登录请求参数
     * @return 用户信息
     */
    Object getWxUserInfo(WxLoginRequest loginRequest);
    
    /**
     * 获取微信openid
     * 
     * @param code 微信临时登录凭证
     * @return 包含openid和sessionKey的Map
     */
    Map<String, Object> getWxOpenid(String code);
    
    /**
     * 微信用户注册
     * 
     * @param registerRequest 注册请求参数
     * @return 注册结果，成功返回用户信息，失败返回错误信息
     */
    Map<String, Object> registerWxUser(WxRegisterRequest registerRequest);
}